Keep Bluetooth Proxy on for legacy BLE builds - #93
Conversation
The Bluetooth Proxy switch does restore from flash, but the _OFF half of RESTORE_DEFAULT_OFF decides the boot where nothing is stored yet, which is the first boot after the switch shipped. MSR-2_BLE.yaml inherited that mode from Core, so legacy BLE devices that had always proxied came up with the proxy off after updating. Core now reads the mode from a bluetooth_proxy_restore_mode substitution defaulting to RESTORE_DEFAULT_OFF, and MSR-2_BLE.yaml overrides it to RESTORE_DEFAULT_ON, the same override pattern the file already uses for its OTA manifest URLs. The unified image is unchanged and a user's saved choice still wins on every later boot. Refs #92 🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review. WalkthroughESPHome now supports a configurable Bluetooth Proxy restore mode. The core default is disabled. The BLE configuration sets the mode to restore enabled. The package version and boot comment were updated. ChangesBluetooth Proxy restore behavior
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The change is localized to BLE proxy restore defaults, and no actionable merge-blocking risk remains after normal checks and review. Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Re-dated for the merge day per versioning policy. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Version: 26.7.29.1
What does this implement/fix?
The Bluetooth Proxy switch does restore from flash, but the
_OFFhalf ofRESTORE_DEFAULT_OFFonly decides the boot where nothing is stored yet, which isthe first boot after the switch shipped.
MSR-2_BLE.yamlinherited that mode fromCore, so a legacy BLE device that had always proxied comes up with the proxy off
after updating and stays that way until the user finds the switch. Reported in #92.
Core now reads the mode from a
bluetooth_proxy_restore_modesubstitutiondefaulting to
RESTORE_DEFAULT_OFF, andMSR-2_BLE.yamloverrides it toRESTORE_DEFAULT_ON, the same override pattern that file already uses for its OTAmanifest URLs. The unified image is unchanged, and a user's saved choice still wins
on every later boot.
Validated with
esphome configon 2026.7.2 acrossMSR-2.yaml,MSR-2_BLE.yamland
MSR-2_Factory.yaml. Rendered switch: standardRESTORE_DEFAULT_OFF, BLERESTORE_DEFAULT_ON.Matching PRs go to AIR-1, MSR-1 and MTR-1, which carry the identical switch and BLE variant.
Types of changes
Checklist / Checklijst:
If user-visible functionality or configuration variables are added/modified:
🤖 Generated with Claude Code
Summary by CodeRabbit